\contentsline {chapter}{Acknowledgments}{vi}{chapter*.5}
\contentsline {chapter}{\numberline {1}Introduction}{1}{chapter.1}
\contentsline {section}{\numberline {1.1}Motivation}{2}{section.1.1}
\contentsline {section}{\numberline {1.2}Structure of The Thesis}{3}{section.1.2}
\contentsline {chapter}{\numberline {2}Windows Presentation Foundation}{5}{chapter.2}
\contentsline {section}{\numberline {2.1}Introduction to WPF}{5}{section.2.1}
\contentsline {section}{\numberline {2.2}WPF Architecture}{6}{section.2.2}
\contentsline {section}{\numberline {2.3}XAML Basics}{7}{section.2.3}
\contentsline {section}{\numberline {2.4}Logic Tree and Visual Tree}{9}{section.2.4}
\contentsline {section}{\numberline {2.5}Style}{11}{section.2.5}
\contentsline {section}{\numberline {2.6}ControlTemplate and DataTemplate}{12}{section.2.6}
\contentsline {section}{\numberline {2.7}Custom Elements}{13}{section.2.7}
\contentsline {subsection}{\numberline {2.7.1}Introduction}{13}{subsection.2.7.1}
\contentsline {subsection}{\numberline {2.7.2}User Control}{14}{subsection.2.7.2}
\contentsline {subsection}{\numberline {2.7.3}Custom Control}{16}{subsection.2.7.3}
\contentsline {subsection}{\numberline {2.7.4}Summery}{21}{subsection.2.7.4}
\contentsline {chapter}{\numberline {3}Model-View-Controller}{23}{chapter.3}
\contentsline {section}{\numberline {3.1}Old UI Architecture}{23}{section.3.1}
\contentsline {subsection}{\numberline {3.1.1}Forms and Controls}{23}{subsection.3.1.1}
\contentsline {subsection}{\numberline {3.1.2}Issues}{27}{subsection.3.1.2}
\contentsline {section}{\numberline {3.2}MVC Pattern}{28}{section.3.2}
\contentsline {subsection}{\numberline {3.2.1}Introduction}{28}{subsection.3.2.1}
\contentsline {subsection}{\numberline {3.2.2}Model}{28}{subsection.3.2.2}
\contentsline {subsection}{\numberline {3.2.3}View}{29}{subsection.3.2.3}
\contentsline {subsection}{\numberline {3.2.4}Controller}{29}{subsection.3.2.4}
\contentsline {subsection}{\numberline {3.2.5}How They Work}{29}{subsection.3.2.5}
\contentsline {subsubsection}{A Concrete Example}{30}{section*.6}
\contentsline {subsection}{\numberline {3.2.6}Advantages and Disadvantages}{31}{subsection.3.2.6}
\contentsline {subsubsection}{Advantages}{31}{section*.7}
\contentsline {subsubsection}{Disadvantages}{32}{section*.8}
\contentsline {chapter}{\numberline {4}Agile Development Process}{33}{chapter.4}
\contentsline {section}{\numberline {4.1}Overview and Definitions}{33}{section.4.1}
\contentsline {section}{\numberline {4.2}Comparisons}{35}{section.4.2}
\contentsline {section}{\numberline {4.3}Characterization}{35}{section.4.3}
\contentsline {section}{\numberline {4.4}Scrum}{37}{section.4.4}
\contentsline {subsection}{\numberline {4.4.1}Scrum Roles and Responsibilities}{38}{subsection.4.4.1}
\contentsline {subsubsection}{Scrum Master}{38}{section*.9}
\contentsline {subsubsection}{Product Owner}{38}{section*.10}
\contentsline {subsubsection}{Scrum Team}{38}{section*.11}
\contentsline {subsubsection}{Customer}{39}{section*.12}
\contentsline {subsection}{\numberline {4.4.2}Scrum Practices}{39}{subsection.4.4.2}
\contentsline {subsubsection}{Product Backlog}{39}{section*.13}
\contentsline {subsubsection}{Sprint}{39}{section*.14}
\contentsline {subsubsection}{Sprint Planning Meeting}{41}{section*.15}
\contentsline {subsubsection}{Sprint Backlog}{42}{section*.16}
\contentsline {subsubsection}{Daily Scrum Meeting}{42}{section*.17}
\contentsline {subsubsection}{Sprint Review Meeting}{43}{section*.18}
\contentsline {subsection}{\numberline {4.4.3}Scrum Flow}{43}{subsection.4.4.3}
\contentsline {chapter}{\numberline {5}The New Design-Driven UI Process}{46}{chapter.5}
\contentsline {section}{\numberline {5.1}New Features of The New Process}{46}{section.5.1}
\contentsline {subsection}{\numberline {5.1.1}The Needs for A New Role}{46}{subsection.5.1.1}
\contentsline {subsection}{\numberline {5.1.2}The New Role: Integrator}{47}{subsection.5.1.2}
\contentsline {subsection}{\numberline {5.1.3}A New Way to Develop UI Component}{49}{subsection.5.1.3}
\contentsline {section}{\numberline {5.2}Roles in The New UI Development Process}{50}{section.5.2}
\contentsline {subsection}{\numberline {5.2.1}Integrator}{50}{subsection.5.2.1}
\contentsline {subsection}{\numberline {5.2.2}UX Specialist}{51}{subsection.5.2.2}
\contentsline {subsection}{\numberline {5.2.3}UI Developer}{53}{subsection.5.2.3}
\contentsline {subsection}{\numberline {5.2.4}Designer}{55}{subsection.5.2.4}
\contentsline {section}{\numberline {5.3}Snap-in-based UI Structure}{56}{section.5.3}
\contentsline {section}{\numberline {5.4}Process Overview}{58}{section.5.4}
\contentsline {chapter}{\numberline {6}Case Study}{61}{chapter.6}
\contentsline {section}{\numberline {6.1}Basic Principles}{61}{section.6.1}
\contentsline {subsection}{\numberline {6.1.1}Pluggable Components}{61}{subsection.6.1.1}
\contentsline {subsection}{\numberline {6.1.2}UI Framework/Extensibility}{62}{subsection.6.1.2}
\contentsline {subsection}{\numberline {6.1.3}Skins, UI Standards}{62}{subsection.6.1.3}
\contentsline {section}{\numberline {6.2}Preliminary Preparation}{63}{section.6.2}
\contentsline {subsection}{\numberline {6.2.1}The Goal of Each Team}{63}{subsection.6.2.1}
\contentsline {subsection}{\numberline {6.2.2}Roles Assignment}{63}{subsection.6.2.2}
\contentsline {subsubsection}{Scrum Master = UX Specialist}{63}{section*.19}
\contentsline {subsubsection}{Product Owner = UX Specialist (+ Integrator)}{63}{section*.20}
\contentsline {subsubsection}{Scrum Team = Designers + UI Developers (+ Integrator)}{64}{section*.21}
\contentsline {section}{\numberline {6.3}Best Practices}{64}{section.6.3}
\contentsline {subsection}{\numberline {6.3.1}Pre-Game}{64}{subsection.6.3.1}
\contentsline {subsubsection}{Sub-Phase 1}{66}{section*.22}
\contentsline {subsubsection}{Sub-Phase 2}{66}{section*.23}
\contentsline {subsection}{\numberline {6.3.2}In-Game}{68}{subsection.6.3.2}
\contentsline {subsubsection}{Step 1}{68}{section*.24}
\contentsline {subsubsection}{Step 2}{69}{section*.25}
\contentsline {subsubsection}{Step 3}{69}{section*.26}
\contentsline {subsection}{\numberline {6.3.3}Post-Game}{70}{subsection.6.3.3}
\contentsline {chapter}{\numberline {7}Conclusion}{72}{chapter.7}
\contentsline {section}{\numberline {7.1}Proper Use of WPF}{72}{section.7.1}
\contentsline {section}{\numberline {7.2}MVC Variant: DM-V-VM}{73}{section.7.2}
\contentsline {section}{\numberline {7.3}Quality Control}{73}{section.7.3}
\contentsline {section}{\numberline {7.4}Outlook}{73}{section.7.4}
\contentsline {chapter}{\numberline {A}Appendix}{75}{appendix.A}
\contentsline {chapter}{Bibliography}{76}{appendix*.27}
